package com.ruoyi.service;

import java.util.List;

import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.domain.WmsMaterialCategory;

/**
 * 物料分类Service接口
 *
 * @author yinqing
 * @date 2025-06-13
 */
public interface IWmsMaterialCategoryService
{
    /**
     * 查询物料分类
     *
     * @param id 物料分类主键
     * @return 物料分类
     */
    public WmsMaterialCategory selectWmsMaterialCategoryById(Long id);

    /**
     * 查询物料分类列表
     *
     * @param wmsMaterialCategory 物料分类
     * @return 物料分类集合
     */
    public List<WmsMaterialCategory> selectWmsMaterialCategoryList(WmsMaterialCategory wmsMaterialCategory);

    /**
     * 查询部门树结构信息
     *
     * @param category 部门信息
     * @return 部门树信息集合
     */
    public List<TreeSelect> selectCategoryTreeList(WmsMaterialCategory category);

    /**
     * 构建前端所需要树结构
     *
     * @param categorys 部门列表
     * @return 树结构列表
     */
    public List<WmsMaterialCategory> buildCategoryTree(List<WmsMaterialCategory> categorys);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param categorys 部门列表
     * @return 下拉树结构列表
     */
    public List<TreeSelect> buildCategoryTreeSelect(List<WmsMaterialCategory> categorys);
    /**
     * 新增物料分类
     * 
     * @param wmsMaterialCategory 物料分类
     * @return 结果
     */
    public int insertWmsMaterialCategory(WmsMaterialCategory wmsMaterialCategory);

    /**
     * 修改物料分类
     * 
     * @param wmsMaterialCategory 物料分类
     * @return 结果
     */
    public int updateWmsMaterialCategory(WmsMaterialCategory wmsMaterialCategory);

    /**
     * 批量删除物料分类
     * 
     * @param ids 需要删除的物料分类主键集合
     * @return 结果
     */
    public int deleteWmsMaterialCategoryByIds(Long[] ids);

    /**
     * 删除物料分类信息
     * 
     * @param id 物料分类主键
     * @return 结果
     */
    public int deleteWmsMaterialCategoryById(Long id);
}
